
package com.hlkj.pay.dto.merchant;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.hlkj.framework.common.util.collection.CollectionUtils;
import com.hlkj.framework.common.util.json.JsonUtils;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;

import com.hlkj.pay.enums.MerchantEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * @author HlpayTeam
 * @date 2024/09/25 14:25
 */
@Data
public class MerchantAccessInfoPageDto extends BaseDO {

    /**
     * 商户名称
     */
    private String name;

    /**
     * 商户名称
     */
    private String shortName;

    /**
     * 联系人名称
     */
    private String contactName;

    /**
     * 联系人手机号
     */
    private String contactPhone;

    /**
     * 联系人邮箱
     */
    private String contactEmail;

    /**
     * 商户商户号
     */
    private String sn;
    /**
     * 商户类型，1=个人，2=企业
     * @see MerchantEnum.MERCHANT_TYPE
     */
    private Integer type;

    /**
     * 商户类别 1 商户 2 代理商户
     */
    private Integer snType;

    /**
     * 所属平台，1=运营平台，2=机构，3=商户
     */
    private Integer sysType;

    /**
     * 服务商名称
     */
    private String providerName;

    /**
     * 服务商编码
     */
    private String providerCode;

    /**
     * 通道名称
     */
    private String channelName;

    /**
     * 通道编码
     */
    private String channelCode;

    /**
     * 审核状态，0：草稿 1：鉴权中
     * 2：已提交，等待平台审核，3：系统自动审核中，4：系统审核通过渠道审核中，5：平台审核中，6：待签约，7：签约中，8：待配置，9：配置中，10：审核完成，11：审核驳回
     */
    private Integer status;

    /**
     * 渠道侧商户号
     */
    private String subMchId;

    /**
     * 请求号
     */
    private String requestId;
    /**
     * 渠道申请单号
     */
    @Schema(description ="渠道申请单号")
    private String applyNo;
    /**
     * 信息提示
     */
    private String message;

    /**
     * 机构名称
     */
    private String superAgentName;

    /**
     * 机构编码
     */
    private String superAgent;

    private String signLink;

    private String mchOrderNo;
    private String mchChannelCode;

    @Schema(description = "文件签署链接")
    private List<MerchantAccessSignLink> signLinks;

    public List<MerchantAccessSignLink> getSignLinks() {
        if (CollectionUtils.isNotEmpty(signLinks)) {
            return signLinks;
        }
        if (StringUtils.isNotEmpty(signLink)) {
            return signLinks = JsonUtils.parseArray(signLink, MerchantAccessSignLink.class);
        }

        return signLinks;
    }
}
